Motion control systems are utilized to move, position and/or control one or more objects in a desired manner, and typically include a motion controller, a drive or amplifier, a motor, and mechanical elements. The motion controller acts as the intelligent portion of the system, providing control signals that, in conjunction with the drive, motor and mechanical elements, produce a desired motion or outcome.
Typically, control algorithms are implemented via software that resides within the motion controller. The motion controller, executing the software, outputs analog and/or digital control signals to the drive, which then amplifies the signals to a level usable by the motor. The motor converts the electrical energy provided by the drive to mechanical energy, which is applied to the mechanical elements to achieve a desired motion.
Although not required, a feedback device or a position sensor may be used in the motion control system to increase the accuracy of the desired motion. Typically, the feedback device is coupled to the motor shaft or to a component that is to be controlled by the motion controller. The feedback device, such as an encoder, a resolver, or the like, provides signals that can be used by the motion controller to sense and/or determine position and/or velocity of the motor shaft and/or of the object to be controlled. The feedback device can be used to close the loop to the motion controller, thereby providing increased accuracy of the overall system. Other types of position sensors, such as proximity switches, optical switches, or the like, also can be used to control or provide feedback as to the position of the moving object.
Further, the motion control system can include a plurality of drives and motors to allow multi-axis control of the movement of the object. Such multi-axis systems can control the motion of an object in two and/or three dimensional space.
In addition to moving an object in a controlled manner, the motion control system also should provide a desired level of performance in executing the motion profile. The specific level of performance required in the system is application specific, and can vary from machine to machine and industry to industry. Generally speaking, the motion control system should be stable, provide acceptable responses to input commands with a minimum steady-state error, and be able to eliminate the effect of undesirable disturbances. Additionally, multi-axis applications typically require a level of coordination between the individual axes to achieve a desired result.
For example, in a two-axis glue dispensing system, a material, e.g., paper or the like, receives a bead of glue as it passes beneath a glue head. In order to maintain a constant thickness of the bead of glue on the paper, the glue is dispensed at a rate proportional to the speed of the of the paper passing beneath the glue head. Thus, it is clear that as the speed of the material passing beneath the glue head is changed, the flow of glue also is changed. Failure to do so would result in the paper having a bead of glue that varies in thickness. To maintain a constant thickness of the glue bead, a level of coordination between a section controlling the speed of the material passing beneath the glue head and a section controlling the extrusion of glue is required.
A conventional approach to multi-axis motion control systems is to implement a master-slave configuration, wherein a lead axis (e.g., the master) serves as the command generator for one or more follower axes (e.g., the slaves). For example, in a speed follower system as the speed of the master is varied, the speed of one or more slave sections also is varied proportionally to the speed of the master. Assuming the slave controllers are modeled and tuned properly, then synchronization will occur between the master and slave sections. However, due to the dynamics of the system, such master-slave systems may not provide a desired result, as illustrated in the following example.
A three-axis glue dispensing machine dispenses a bead of glue on a two-dimensional flat surface, such as an envelope or box top. The system includes a first axis for controlling an X axis, a second axis for controlling a Y axis, and a third axis for controlling a pump. The first and second axes control the motion of a gantry, while the third axis controls the extrusion of glue from a glue head.
The speed of the gantry will change as it traces a path in two-dimensions, typically slowing down at sharp corners and speeding up along straight segments. In operation, it is desirable to maintain a constant thickness of the glue bead, no matter how fast or slow the gantry is moving. To maintain a constant thickness of the glue bead, the third axis is slaved off the vector velocity of the first and second axes (a master-slave configuration). Therefore, as the gantry varies in speed, the extrusion of glue will vary proportionally to the gantry speed.
Due to the dynamics of glue extrusion, however, some lag may be present in the response time of the third axis. This lag can be in the range of a few milliseconds to a few seconds, and can result in uneven application of the glue onto the envelope or box top. For example, as the gantry speed is quickly changed, the pump speed also is quickly changed. However, due to the dynamics of the glue and/or the pump, an increase or decrease in the output of glue may not be seen until some time after the pump speed has changed. This can result in a thin bead of glue during periods of high acceleration, and a thick bead of glue during periods of high deceleration.
Conventionally, feedforward control and/or derivative control, e.g., a PID controller, are implemented to compensate for the machine or process dynamics for single axis. Such implementations, however, can not compensate for large dynamics delays across multiple axes that are performing a tight co-ordinated motion.